$fn=50;
step=3;
stepDegree=30;

difference(){
  union(){
    cylinder(r=15,h=14);
    cylinder(r=15+0.3,h=10,$fn=18);
  }
  translate([0,0,1.6]) cylinder(r=27.5/2,h=20);
}
difference(){
  translate([0,0,1.6]) cylinder(r1=23/2,r2=20/2,h=3);
  translate([0,0,1.6]) cylinder(r=10,h=3.01);
}
for( i=[1:2:12*2] ){
  translate([cos(i*stepDegree)*27/2, sin(i*stepDegree)*27/2,
     4+stepDegree/360*step*i ])
  rotate(a=[0,0,i*stepDegree+90])
  scale([5,1,1]) sphere(r=1,$fn=16);
}